package com.ruoyi.device.service.impl;

import java.util.ArrayList;
import java.util.List;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.device.domain.TModelcamgroup;
import com.ruoyi.device.domain.TModelfloorgroup;
import com.ruoyi.device.mapper.TModelcamgroupMapper;
import com.ruoyi.device.mapper.TModelfloorgroupMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.device.mapper.TTpHvacMapper;
import com.ruoyi.device.domain.TTpHvac;
import com.ruoyi.device.service.ITTpHvacService;

import static com.ruoyi.common.security.utils.SecurityUtils.getLoginUser;

/**
 * 监控设备Service业务层处理
 * 
 * @author li
 * @date 2025-09-23
 */
@Service
public class TTpHvacServiceImpl implements ITTpHvacService 
{
    @Autowired
    private TTpHvacMapper tTpHvacMapper;
    @Autowired
    private TModelcamgroupMapper tModelcamgroupMapper;

    @Autowired
    private TModelfloorgroupMapper tModelfloorgroupMapper;

    /**
     * 查询监控设备
     * 
     * @param id 监控设备主键
     * @return 监控设备
     */
    @Override
    public TTpHvac selectTTpHvacById(String id)
    {
        return tTpHvacMapper.selectTTpHvacById(id);
    }

    /**
     * 查询监控设备列表
     * 
     * @param tTpHvac 监控设备
     * @return 监控设备
     */
    @Override
    public List<TTpHvac> selectTTpHvacList(TTpHvac tTpHvac)
    {
        return tTpHvacMapper.selectTTpHvacList(tTpHvac);
    }

    /**
     * 新增监控设备
     * 
     * @param tTpHvac 监控设备
     * @return 结果
     */
    @Override
    public int insertTTpHvac(TTpHvac tTpHvac)
    {
        tTpHvac.setCreateBy(getLoginUser().getUsername());
        tTpHvac.setCreateTime(DateUtils.getNowDate());
        return tTpHvacMapper.insertTTpHvac(tTpHvac);
    }

    /**
     * 修改监控设备
     * 
     * @param tTpHvac 监控设备
     * @return 结果
     */
    @Override
    public int updateTTpHvac(TTpHvac tTpHvac)
    {
        tTpHvac.setUpdateBy(getLoginUser().getUsername());
        tTpHvac.setUpdateTime(DateUtils.getNowDate());
        return tTpHvacMapper.updateTTpHvac(tTpHvac);
    }

    /**
     * 批量删除监控设备
     * 
     * @param ids 需要删除的监控设备主键
     * @return 结果
     */
    @Override
    public int deleteTTpHvacByIds(String[] ids)
    {
        return tTpHvacMapper.deleteTTpHvacByIds(ids);
    }

    /**
     * 删除监控设备信息
     * 
     * @param id 监控设备主键
     * @return 结果
     */
    @Override
    public int deleteTTpHvacById(String id)
    {
        return tTpHvacMapper.deleteTTpHvacById(id);
    }

    @Override
    public List<TTpHvac> getInfoBuildCam(Long id) {
        List<TTpHvac> result = new ArrayList<>();
        //1.根据用户传递的楼层id获取监控分组详情
        TModelfloorgroup tModelfloorgroup = tModelfloorgroupMapper.selectTModelfloorgroupById(String.valueOf(id));
        //如果监控分组不为空
        if (tModelfloorgroup != null){
            //2.监控分组的id去查询已经存在的监控设备对应fid字段
            TModelcamgroup tModelcamgroup = tModelcamgroupMapper.getInfoCamInfo(tModelfloorgroup.getId());
            if (tModelcamgroup != null&&tModelcamgroup.getCode()!=null){
                String[] code = tModelcamgroup.getCode().split(",");
                for (String s : code) {
                    TTpHvac tTpHvac = tTpHvacMapper.getInfoByModelId(s);
                    result.add(tTpHvac);
                }
            }
        }
        return result;
    }

    @Override
    public TTpHvac getInfoByModelId(String modelId) {
        return tTpHvacMapper.getInfoByModelId(modelId);
    }
}